package br.edu.ifpi.ads.pc;

import br.edu.ifpi.ads.pc.persistenciaDados.AbstracaoDoEnvio;

/**
 *
 * @author Ricardo Rosa Barbosa de Macedo
 */
public class NotaFiscal {
    private String nomeCliente;
    private double valorNota;
    private double valorImposto;
    
    public NotaFiscal(){
    }
    
    public NotaFiscal(Fatura f){
        this.nomeCliente = f.getNomeCliente();
        this.valorNota = f.getValorFatura();
    }
    
    private double calculaImposto(Fatura f){
        double imposto = 0;
        for (Servico s: Servico.values()) {
            if(s.equals(f.getTipoServico())){
                imposto = f.getTipoServico().getPorcentagem() * getValorNota() / 100;
            }
        }
        return imposto;
    }
    
    public void GerarNotaFiscal(Fatura f){
        AbstracaoDoEnvio ade = new AbstracaoDoEnvio();
        System.out.println("Nota Fiscal");
        System.out.println("--------------------------");
        System.out.println("Nome do Cliente: " + getNomeCliente());
        System.out.println("Valor da Nota Fiscal: R$ " + getValorNota());
        System.out.println("Valor do Imposto:     R$ " + getValorImposto());
        System.out.println("");
        ade.Enviar(this);
    }
    
    private void setValorNota(Fatura f){
        this.valorNota = f.getValorFatura();
    }

    public double getValorImposto() {
        return valorImposto;
    }

    public String getNomeCliente() {
        return nomeCliente;
    }

    public double getValorNota() {
        return valorNota;
    }

    public void setValorImposto(Fatura f) {
        valorImposto = calculaImposto(f);
    }
}
